//堆区
//由程序员分配释放，若程序员不释放，程序结束时由操作系统回收
//在C++中主要利用new在堆区中开辟内存

#include <iostream>

using namespace std;

int * func()
{
    //利用new可以将数据开辟到堆区
    //int a = 10;
    //return &a;

    int *pp;
    *pp = 10;

    cout << pp << endl;

    int *p = new int(10);//这时的p在堆区

    cout << p << endl;

    return p;
}

int main(void)
{
    //在堆区开辟数据

    int *p = func();

    cout << p << endl;

    cout << *p << endl;

    return 0;
}